package ex02;

public class cook extends Thread{
    @Override
    public void run() {
        //循环 //同步代码块 //判断是否为空 //如果不为空
        while (true){//死循环，由内部代码解除循环 为了让线程能一直走到我们要的结果所以死循环
            synchronized (desk.lock){//用同步代码块把线程给锁起来防止出现数据重复，错误的情况
                if (desk.count==0){//判断面条是否吃完了
                    break;//吃完了就退出，结束运行
                }else{//如果没吃完，那就进入判断有没有面条做好了的
                    if(desk.food==1){//有面条，进入等待
                        try {
                            desk.lock.wait();//等他吃完所以先等一下//wait等待语句会报错，所以try出去
                        } catch (InterruptedException e) {
                            throw new RuntimeException(e);
                        }
                    }
                    else {

                        System.out.println("厨师做了碗面条");//输出我们还能吃几碗
                        desk.food = 1;//把面条的值改为1
                        desk.lock.notifyAll();//通知（唤醒）吃货可以进行吃的动作了
                    }
                }
            }
        }
    }
}
